package cn.cyh.queue_service.mq.producer;

import cn.cyh.queue_service.mq.event.*;

/**
 * 事件消息生产者接口
 */
public interface EventProducer {
    
    /**
     * 发送取号事件消息
     *
     * @param event 取号事件
     */
    void sendTakeNumberEvent(TakeNumberEvent event);
    
    /**
     * 发送状态变更事件消息
     *
     * @param event 状态变更事件
     */
    void sendStatusChangeEvent(StatusChangeEvent event);
    
    /**
     * 发送新叫号事件消息
     *
     * @param event 新叫号事件
     */
    void sendNewCallEvent(NewCallEvent event);
    
    /**
     * 发送验证事件消息
     *
     * @param event 验证事件
     */
    void sendVerifyEvent(VerifyEvent event);
    
    /**
     * 发送服务完成事件消息
     *
     * @param event 服务完成事件
     */
    void sendCompleteServiceEvent(CompleteServiceEvent event);
    
    /**
     * 发送窗口状态事件消息
     *
     * @param event 窗口状态事件
     */
    void sendWindowStatusEvent(WindowStatusEvent event);
    
    /**
     * 发送统计数据更新事件消息
     *
     * @param event 统计数据更新事件
     */
    void sendStatsUpdateEvent(StatsUpdateEvent event);
    
    /**
     * 发送日志消息
     *
     * @param level 日志级别
     * @param message 日志内容
     */
    void sendLogMessage(String level, String message);
} 